import { IDictionary } from "./IUtils";

/**数据容器接口 */
export interface IDataContainer {
  /**数据字典 */
  dataList: IDictionary<number, any>;
  /**容器名称 */
  dataName: string;
  /**通过id获取数据 */
  get(id: number): any;
  /**设置数据-自动将id设为字典值 */
  set(data: any);
  /**移除数据 */
  remove(id: number): boolean;
}
/**数据工厂 */
export interface IDataFactory {
  /**
   * 添加单条数据
   */
  add(tag: number, data: any);
  /**移除数据 */
  remove(tag: number, id: number): boolean;
  /**批量添加数据 */
  addArray(tag: number, data: Array<any>);
  /**批量添加数据 且正向排序 */
  addArrayToSort(tag: number, data: Array<any>);
  /**获取数据通过数据编号 */
  getDataByID<T>(tag: number, id: number): T;
  /**获取数据集合  */
  getDataList<T>(tag: number): Array<T>;
}
